Secure Shell (SSH) is a protocol that leverages public key cryptography to authenticate and secure access among computers in a computer network. SSH secures, among other things, Telnet-related operations. Telnet has traditionally been used for remote management of various systems such as Unix, Linux, and Unix-like computers, routers, switches, firewalls, and other appliances and systems running a variety of operating systems. It has also been used for automated connections between systems via scripting and batch processing. SSH secures Telnet connections by authenticating servers to which a user or system is connecting (ensuring they are not connecting to the wrong server), encrypting the connection to the server (so private data is not publicly viewable), and optionally authenticating the client using public key cryptography as an alternative to usernames and passwords.
File transfer protocol (FTP) has commonly been used along with Telnet to facilitate management and operation of such systems and is subject to the same security challenges. Consequently, protocols such as Secure FTP (SFTP) and Secure Copy (SCP) have been developed to be used alongside SSH and generally use the same public and private keys (Key Pairs) used for SSH for their security. References within this document to SSH also refer to SFTP and SCP.
SSH devices and systems may include SSH clients, SSH servers, and SSH-enabled computing appliances, entities, or virtual machines acting as SSH clients or SSH servers. Separate user accounts may also act as SSH devices.